package com.controller;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

@ControllerAdvice
public class GlobalExceptionHandler {

    /**
     * 1.异常处理方法的返回值与@RequestMapping修饰的方法的返回值类型是一样
     * 2.方法的参数是可以没有的，如果有，基本上就是能处理异常的类型作为参数类型
     *
     * @return
     */
    @ExceptionHandler(Throwable.class)
    public String handleException(Throwable throwable) {
        System.out.println("throwable-------");
        return "error";
    }

    /**
     * 这个方法是处理RuntimeException及其子类的异常
     * 如果发生的异常有多个处理方法都可以处理，
     * 会选最靠近自己的方法来处理异常
     *
     * @param throwable
     * @return
     */
    @ExceptionHandler(RuntimeException.class)
    public String handleRuntimeException(RuntimeException throwable) {
        System.out.println("runtime exception-----");
        return "error";
    }
}
